PROLOG
The core PROLOG contains:
IMPORT "xgr" - declares
GraphicsDesigner types, functions, constants.
IMPORT "xui" - declares GuiDesigner types, functions, constants.
declarations for functions GuiDesigner automatically creates for you.
Entry()
Entry() contains three sections:
1. Initialize GuiDesigner, GuiDesigner variables, and your program.
Xui() ' initialize GuiDesigner
InitGui() ' initialize messages, etc.
InitProgram() ' initialize your program
2. Create and display the main window and any others you design.
CreateWindows() ' create your program's windows
InitWindows() ' initialize windows if needed
3. Process messages in the message loop.
DO ' the message loop ...
XgrProcessMessages ( 1 ) ' processes one message ...
LOOP UNTIL terminateProgram ' and repeat until
program terminates
Entry() is your GUI program
No matter how large, sophisticated, and elaborate your GUI program is, Entry() is your
program. Everything else is support for Entry(). That may seem far fetched,
but consider:
Entry() initializes everything, displays your main window, then enters the message loop
where it waits for a message. From then on, the message loop is the "base of
operations" for your program. The message loop calls other functions to process
user-generated messages as they occur, but those functions always return to the message
loop when they're done. Your program spends its life in the message loop, except for
occasional excursions to process a message.
the nature of GUI programs
That's how GUI programs work. Most of the time they sleep in the message loop at the
bottom of the entry function, waiting for activity. When the user presses a keyboard
key or mouse button or otherwise generates a message, the message loop wakes up and calls
the function that knows how to process the message. After the function responds to
the user action, it returns to the message loop where the program again falls asleep until
the user generates another message.
1. Sleep in the message loop until a message arrives. When it
does...
2. Call the function that knows how to process the message.
3. Go to step 1.
The basic structure of GuiDesigner programs is amazingly simple. What's more amazing
is that this basic structure is flexible enough for any kind of program.
Hey! GUI programs don't have to be difficult after all.